﻿Imports System.Net.Mail
Imports System.Configuration
Partial Public Class Wfr_Registro_Usuario

    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        pnl_mensaje.Visible = False
        lbl_mensaje.Text = ""
        pnl_mensaje.UpdateAfterCallBack = True
        lbl_mensaje.UpdateAfterCallBack = True

        If Not Page.IsPostBack Then
            Session.Remove("valor")
            Session.Remove("update")
            llena_combo()
            txt_Rut.Attributes.Add("onkeypress", "javascript:return ValidNum(event);")
            txt_celular.Attributes.Add("onkeypress", "javascript:return ValidNum(event);")
            txt_fonofijo.Attributes.Add("onkeypress", "javascript:return impideLetras(event);")
            botonera()
        End If
    End Sub
    Sub botonera()
        txt_nombres.ReadOnly = True
        txt_materno.ReadOnly = True
        txt_paterno.ReadOnly = True

        txt_fonofijo.ReadOnly = True
        txt_email1.ReadOnly = True
        txt_email12.ReadOnly = True
        cmb_Sexo.Enabled = False
        txt_celular.ReadOnly = True
        cmb_region.Enabled = False
        ImageButton1.Enabled = False

        ImageButton1.UpdateAfterCallBack = True
        cmb_region.UpdateAfterCallBack = True
        txt_nombres.UpdateAfterCallBack = True
        txt_materno.UpdateAfterCallBack = True
        txt_paterno.UpdateAfterCallBack = True
        txt_fonofijo.UpdateAfterCallBack = True
        txt_email1.UpdateAfterCallBack = True
        txt_email12.UpdateAfterCallBack = True
        cmb_Sexo.UpdateAfterCallBack = True
        txt_celular.UpdateAfterCallBack = True
        cmb_comuna.Enabled = False
        cmb_comuna.UpdateAfterCallBack = True
        cmb_isapre.Enabled = False
        cmb_isapre.UpdateAfterCallBack = True
    End Sub

    Protected Sub txt_dv_TextChanged(ByVal sender As Object, ByVal e As EventArgs) Handles txt_dv.TextChanged
        Dim exec As New DotNetDal.SQLPersistence(False, "cnn", DotNetDal.SQLPersistence.Provider.SQLCLIENT)
        Dim rp As New DotNetResponse.SQLPersistence

        rp.StoredProcedure = "SP_AME_GET_TBL_AME_USU_LOGIN"
        rp.AddParametro(txt_rut.Text)
        exec.ExecuteDataTable(rp)
        Anthem.Manager.AddScriptForClientSideEval("document.getElementById('" & txt_Nombres.ClientID & "').focus();")
        If rp.Errores Then
            Exit Sub
        End If

        If rp.TieneDatos And rp.DtTable.Rows(0).Item(0) > 0 Then
            rp.ClearParametro()
            rp.TieneDatos = False

            rp.StoredProcedure = "SP_AME_GET_PACIENTE_LOGIN"
            rp.AddParametro(txt_rut.Text & txt_dv.Text)
            exec.ExecuteDataTable(rp)

            If rp.TieneDatos Then
                txt_rut.ReadOnly = True
                txt_dv.ReadOnly = True
                txt_rut.UpdateAfterCallBack = True
                txt_dv.UpdateAfterCallBack = True

                txt_nombres.Text = rp.DtTable.Rows(0).Item(0).ToString
                txt_paterno.Text = rp.DtTable.Rows(0).Item(1).ToString
                txt_materno.Text = rp.DtTable.Rows(0).Item(2).ToString
                cmb_Sexo.SelectedItem.Text = rp.DtTable.Rows(0).Item(5).ToString
                txt_celular.Text = rp.DtTable.Rows(0).Item(4).ToString
                datepicker.Text = Convert.ToDateTime(rp.DtTable.Rows(0).Item(3).ToString).ToString("dd/MM/yyyy")
                datepicker.ReadOnly = True
                datepicker.UpdateAfterCallBack = True
                txt_email1.Text = LTrim(RTrim(rp.DtTable.Rows(0).Item(8).ToString))
                txt_email12.Text = LTrim(RTrim(rp.DtTable.Rows(0).Item(8).ToString))
                'cmb_comuna.SelectedValue = rp.DtTable.Rows(0).Item(6).ToString 'JQ 17042011
                cmb_isapre.SelectedValue = rp.DtTable.Rows(0).Item(9).ToString
                cmb_region.SelectedValue = rp.DtTable.Rows(0).Item(11).ToString
                cmb_region_SelectedIndexChanged(Nothing,Nothing)'JQ 17042011
                cmb_comuna.SelectedValue = rp.DtTable.Rows(0).Item(6).ToString 'JQ 17042011

                txt_fonofijo.Text = rp.DtTable.Rows(0).Item(12).ToString

                txt_fonofijo.UpdateAfterCallBack = True
                txt_nombres.UpdateAfterCallBack = True
                txt_paterno.UpdateAfterCallBack = True
                txt_materno.UpdateAfterCallBack = True
                cmb_Sexo.UpdateAfterCallBack = True
                txt_celular.UpdateAfterCallBack = True
                'txt_fecha_Nacimiento.UpdateAfterCallBack = True
                txt_email1.UpdateAfterCallBack = True
                txt_email12.UpdateAfterCallBack = True
                cmb_comuna.UpdateAfterCallBack = True
                cmb_isapre.UpdateAfterCallBack = True
                cmb_region.UpdateAfterCallBack = True
                pnl_mensaje.Visible = True
                pnl_mensaje.UpdateAfterCallBack = True
                lbl_mensaje.Text = "Usuario Ya Registrado"
                lbl_mensaje.UpdateAfterCallBack = True

                ImageButton1.Visible = False
                ImageButton1.UpdateAfterCallBack = True

                Me.Button2.ImageUrl = "~/imagenes/boton volver.png"
                Me.Button2.UpdateAfterCallBack = True

            End If
            Exit Sub
        End If

        rp.ClearParametro()
        rp.TieneDatos = False
        rp.StoredProcedure = "SP_AME_GET_PACIENTE_LOGIN"
        rp.AddParametro(txt_rut.Text & txt_dv.Text)
        exec.ExecuteDataTable(rp)

        If rp.TieneDatos Then
            txt_rut.ReadOnly = True
            txt_dv.ReadOnly = True
            txt_rut.UpdateAfterCallBack = True
            txt_dv.UpdateAfterCallBack = True
            txt_nombres.Text = rp.DtTable.Rows(0).Item(0).ToString
            txt_paterno.Text = rp.DtTable.Rows(0).Item(1).ToString
            txt_materno.Text = rp.DtTable.Rows(0).Item(2).ToString
            cmb_Sexo.SelectedItem.Text = rp.DtTable.Rows(0).Item(5).ToString
            txt_celular.Text = rp.DtTable.Rows(0).Item(4).ToString
            datepicker.Text = Convert.ToDateTime(rp.DtTable.Rows(0).Item(3).ToString).ToString("dd/MM/yyyy")
            datepicker.ReadOnly = True
            datepicker.UpdateAfterCallBack = True
            datepicker.UpdateAfterCallBack = True
            txt_email1.Text = RTrim(LTrim(rp.DtTable.Rows(0).Item(8).ToString))
            txt_email12.Text = RTrim(LTrim(rp.DtTable.Rows(0).Item(8).ToString))
            'cmb_comuna.SelectedValue = rp.DtTable.Rows(0).Item(6).ToString
            cmb_isapre.SelectedValue = rp.DtTable.Rows(0).Item(9).ToString
            cmb_region.SelectedValue = rp.DtTable.Rows(0).Item(11).ToString
            cmb_region_SelectedIndexChanged(Nothing,Nothing)'JQ 17042011
            cmb_comuna.SelectedValue = rp.DtTable.Rows(0).Item(6).ToString 'JQ 17042011

            txt_Nombres.UpdateAfterCallBack = True
            txt_paterno.UpdateAfterCallBack = True
            txt_materno.UpdateAfterCallBack = True
            cmb_Sexo.UpdateAfterCallBack = True
            txt_celular.UpdateAfterCallBack = True
            txt_email1.UpdateAfterCallBack = True
            txt_email12.UpdateAfterCallBack = True
            cmb_comuna.UpdateAfterCallBack = True
            cmb_isapre.UpdateAfterCallBack = True
            cmb_region.UpdateAfterCallBack = True
            pnl_mensaje.Visible = True
            pnl_mensaje.UpdateAfterCallBack = True
            lbl_mensaje.Text = "Actualice sus datos. Presione continuar para obtener su clave"
            lbl_mensaje.UpdateAfterCallBack = True

            ImageButton1.Enabled = True
            ImageButton1.UpdateAfterCallBack = True
        Else
            If txt_rut.Text.Length = "7" Then
                txt_rut.Text = "0" & txt_rut.Text
                txt_rut.UpdateAfterCallBack = True
            End If

            ValidaRut(txt_rut.Text)
            If Session("rut_usuario") <> txt_rut.Text & "-" & txt_dv.Text Then
                pnl_mensaje.Visible = True
                lbl_mensaje.Text = "El Rut Ingresado No Es Valido"
                pnl_mensaje.UpdateAfterCallBack = True
                lbl_mensaje.UpdateAfterCallBack = True
                txt_dv.Text = Nothing
                txt_DV.UpdateAfterCallBack = True
                Anthem.Manager.AddScriptForClientSideEval("document.getElementById('" & txt_Rut.ClientID & "').focus();")

                Exit Sub
            End If
            If Session("rut_usuario").ToString.Substring(0, 1) = "0" Then
                Session("rut_usuario") = Session("rut_usuario").ToString.Substring(1, 9)
            End If
            cmb_comuna.Enabled = True
            cmb_comuna.UpdateAfterCallBack = True
            cmb_isapre.Enabled = True
            cmb_isapre.UpdateAfterCallBack = True
            txt_rut.ReadOnly = True
            txt_dv.ReadOnly = True
            txt_rut.UpdateAfterCallBack = True
            txt_dv.UpdateAfterCallBack = True
            txt_nombres.ReadOnly = False
            txt_materno.ReadOnly = False
            txt_paterno.ReadOnly = False
            txt_fonofijo.ReadOnly = False
            txt_email1.ReadOnly = False
            txt_email12.ReadOnly = False
            cmb_Sexo.Enabled = True
            txt_celular.ReadOnly = False
            cmb_region.Enabled = True
            ImageButton1.Enabled = True
            ImageButton1.UpdateAfterCallBack = True
            cmb_region.UpdateAfterCallBack = True
            txt_fonofijo.UpdateAfterCallBack = True
            cmb_Sexo.UpdateAfterCallBack = True
            txt_celular.UpdateAfterCallBack = True
            txt_nombres.UpdateAfterCallBack = True
            txt_materno.UpdateAfterCallBack = True
            txt_paterno.UpdateAfterCallBack = True
            'txt_fecha_Nacimiento.UpdateAfterCallBack = True
            txt_email1.UpdateAfterCallBack = True
            txt_email12.UpdateAfterCallBack = True
            pnl_mensaje.Visible = False
            pnl_mensaje.UpdateAfterCallBack = True
            lbl_mensaje.Text = Nothing
            lbl_mensaje.UpdateAfterCallBack = True
        End If

    End Sub




    Sub SendMail(ByRef rp As DotNetResponse.SQLPersistence, ByVal clave As String, ByVal destinatario As String)
        Try
            Dim Mail As MailMessage
            Dim SmtpServer As New SmtpClient()
            SmtpServer.Credentials = New Net.NetworkCredential(ConfigurationManager.AppSettings("usuario_envio_clave_mail"), ConfigurationManager.AppSettings("clave_envio_clave_email")) 'WebConfig
            'SmtpServer.Port = 25
            SmtpServer.Host = ConfigurationManager.AppSettings("servidor_envio_clave_mail")
            'SmtpServer.EnableSsl = True
            Mail = New MailMessage()
            Try
                Mail.From = New MailAddress(ConfigurationManager.AppSettings("usuario_envio_clave_mail"), ConfigurationManager.AppSettings("usuario_envio_clave_mail"), System.Text.Encoding.UTF8) 'WebConfig     
                Mail.To.Add(destinatario)
                Mail.Subject = ConfigurationManager.AppSettings("body_envio_clave_mail")
                Mail.Body = ConfigurationManager.AppSettings("body_envio_clave_mail") & clave
                SmtpServer.Send(Mail)
            Catch ex As Exception
                rp.Errores = True
                rp.MensajeError = ex.Message
            End Try

        Catch ex As Exception
            rp.Errores = True
            rp.MensajeError = ex.Message
        End Try
    End Sub

    Public Function ValidaRut(ByVal ElNumero As String) As String
        Try

            If Not IsNumeric(txt_Rut.Text) Then
                lbl_mensaje.Text = "El Campo Rut Solo Debe Contener Números"
                pnl_mensaje.Visible = True
                lbl_mensaje.UpdateAfterCallBack = True
                pnl_mensaje.UpdateAfterCallBack = True
                Exit Function
            End If

            Dim Resultado As String = ""
            Dim Multiplicador As Integer = 2
            Dim iNum As Integer = 0
            Dim Suma As Integer = 0
            Dim rut

            For i As Integer = 8 To 1 Step -1
                iNum = Mid(ElNumero, i, 1)
                Suma += iNum * Multiplicador
                Multiplicador += 1
                If Multiplicador = 8 Then Multiplicador = 2
            Next
            Resultado = CStr(11 - (Suma Mod 11))
            If Resultado = "10" Then Resultado = "K"
            If Resultado = "11" Then Resultado = "0"

            rut = ElNumero & "-" & Resultado
            Session("rut_usuario") = Nothing
            Session("rut_usuario") = rut

            lbl_mensaje.Text = Nothing
            pnl_mensaje.Visible = False
            lbl_mensaje.UpdateAfterCallBack = True
            pnl_mensaje.UpdateAfterCallBack = True
            Return ElNumero & "-" & Resultado

        Catch ex As Exception
            lbl_mensaje.Text = "Rut inválido"
            pnl_mensaje.Visible = True
            lbl_mensaje.UpdateAfterCallBack = True
            pnl_mensaje.UpdateAfterCallBack = True
            Exit Function
        End Try


    End Function

    Sub mail()
        'COMO EL EMAIL ES OPCIONAL, SI NO HAY TEXTO EN EL CAMPO NO HACE NADA
        Dim email_fin As String
        email_fin = txt_email1.Text '& "@" & txt_email11.Text

        If email_fin <> "" Then
            Dim partes, parte, letra
            Dim i As Integer
            Dim bandera3
            partes = Split(email_fin, "@")
            If UBound(partes) <> 1 Then
                pnl_mensaje.Visible = True
                pnl_mensaje.UpdateAfterCallBack = True
                lbl_mensaje.Text = "Formato Incorrecto, Ejemplo: paciente@clinicalaslilas.cl"
                lbl_mensaje.UpdateAfterCallBack = True
                txt_email1.ReadOnly = False
                txt_email1.UpdateAfterCallBack = True
                txt_email12.ReadOnly = False
                txt_email12.UpdateAfterCallBack = True
                Session("mail") = "2"
                Session("update") = "update"
                bandera3 = 0
                Exit Sub
            Else
                For Each parte In partes
                    bandera3 = 1
                    For i = 1 To Len(parte)
                        letra = LCase(Mid(parte, i, 1))
                        If InStr("._-abcdefghijklmnopqrstuvwxyz123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ", letra) <= 0 Then
                            pnl_mensaje.Visible = True
                            pnl_mensaje.UpdateAfterCallBack = True
                            lbl_mensaje.Text = "NO SE ACEPTA EL USO DE CARACTERES ESPECIALES COMO ñ,&,*,+,/,%,$"
                            lbl_mensaje.UpdateAfterCallBack = True
                            Session("mail") = "2"
                            Session("update") = "update"
                            bandera3 = 0
                            Exit For
                        Else
                            If lbl_mensaje.Text = "" Then
                                pnl_mensaje.Visible = False
                                pnl_mensaje.UpdateAfterCallBack = True
                                lbl_mensaje.Text = ""
                                lbl_mensaje.UpdateAfterCallBack = True
                            End If
                        End If
                    Next i
                    'si la parte actual acaba o empieza en punto la dirección no es válida 
                    If Left(parte, 1) = "." Or Right(parte, 1) = "." Then
                        pnl_mensaje.Visible = True
                        pnl_mensaje.UpdateAfterCallBack = True
                        lbl_mensaje.Text = "Sintaxis de Correo Incorrecta, Verifique Simbolo ''.''"
                        lbl_mensaje.UpdateAfterCallBack = True
                        Session("mail") = "2"
                        Session("update") = "update"
                        bandera3 = 0
                    Else
                        If lbl_mensaje.Text = "" Then
                            lbl_mensaje.Text = ""
                            lbl_mensaje.UpdateAfterCallBack = True
                            pnl_mensaje.Visible = True
                            pnl_mensaje.UpdateAfterCallBack = True
                        End If
                    End If
                    If bandera3 = 0 Then
                        Exit For
                    End If
                Next parte
                'va.lidar la segunda mitad donde hay el . mas 2 o 3 caracteres
                'si en la segunda mitad no existe un punto
                If Not bandera3 = 0 Then
                    If InStr(partes(1), ".") <= 0 Then
                        pnl_mensaje.Visible = True
                        pnl_mensaje.UpdateAfterCallBack = True
                        lbl_mensaje.Text = "Formato Incorrecto, Ejemplo: paciente@clinicalaslilas.cl"
                        lbl_mensaje.UpdateAfterCallBack = True
                        Session("mail") = "2"
                        Session("update") = "update"
                        bandera3 = 0
                    Else
                        If lbl_mensaje.Text = "" Then
                            pnl_mensaje.Visible = False
                            pnl_mensaje.UpdateAfterCallBack = True
                            lbl_mensaje.Text = ""
                            lbl_mensaje.UpdateAfterCallBack = True
                        End If
                    End If

                    i = Len(partes(1)) - InStrRev(partes(1), ".")
                    'si el número de caracteres despues del punto es distinto de 2 y 3 

                    If Not (i = 2 Or i = 3) Then
                        pnl_mensaje.Visible = True
                        pnl_mensaje.UpdateAfterCallBack = True
                        lbl_mensaje.Text = "Formato Incorrecto, Ejemplo: paciente@clinicalaslilas.cl"
                        lbl_mensaje.UpdateAfterCallBack = True
                        Session("mail") = "2"
                        Session("update") = "update"
                        bandera3 = 0
                    Else
                        'si encuentra dos puntos seguidos
                        If InStr(lbl_mensaje.Text, "..") > 0 Then
                            pnl_mensaje.Visible = True
                            pnl_mensaje.UpdateAfterCallBack = True
                            lbl_mensaje.Text = "Formato Incorrecto, Ejemplo: paciente@clinicalaslilas.cl"
                            lbl_mensaje.UpdateAfterCallBack = True
                            Session("mail") = "2"
                            Session("update") = "update"
                            bandera3 = 0
                        Else
                            pnl_mensaje.Visible = False
                            pnl_mensaje.UpdateAfterCallBack = True
                            lbl_mensaje.Text = ""
                            lbl_mensaje.UpdateAfterCallBack = True
                        End If
                    End If
                End If

            End If
            'lblerroremail.Text = "FORMATO PARA EMAIL INCORRECTO, ASEGURESE QUE SEA COMO EL EJEMPLO: email@dominio.pop"
        Else
            'si no hay texto encendemos la bandera
            pnl_mensaje.Visible = True
            pnl_mensaje.UpdateAfterCallBack = True
            lbl_mensaje.Text = "Completar Campo E-Mail"
            lbl_mensaje.UpdateAfterCallBack = True
            Session("mail") = "2"
            Exit Sub
            Dim bandera3
            bandera3 = 1
        End If
        Session("mail") = Nothing
    End Sub

    Sub valida_datos()

        If txt_rut.Text = "" Then
            pnl_mensaje.Visible = True
            lbl_mensaje.Text = "Completar Campo Rut"
            pnl_mensaje.UpdateAfterCallBack = True
            lbl_mensaje.UpdateAfterCallBack = True
            Dim valor As String
            valor = "1"
            Session("valor") = valor
            Exit Sub
        End If

        If txt_dv.Text = "" Then
            pnl_mensaje.Visible = True
            lbl_mensaje.Text = "Completar Campo DV"
            pnl_mensaje.UpdateAfterCallBack = True
            lbl_mensaje.UpdateAfterCallBack = True
            Dim valor As String
            valor = "1"
            Session("valor") = valor
            Exit Sub
        End If

        If txt_nombres.Text = "" Then
            pnl_mensaje.Visible = True
            lbl_mensaje.Text = "Completar Campo Nombres"
            pnl_mensaje.UpdateAfterCallBack = True
            lbl_mensaje.UpdateAfterCallBack = True
            Dim valor As String
            valor = "1"
            Session("valor") = valor
            Exit Sub
        End If

        If txt_paterno.Text = "" Then
            pnl_mensaje.Visible = True
            lbl_mensaje.Text = "Completar Campo Apellido Paterno"
            pnl_mensaje.UpdateAfterCallBack = True
            lbl_mensaje.UpdateAfterCallBack = True
            Dim valor As String
            valor = "1"
            Session("valor") = valor
            Exit Sub
        End If

        If txt_materno.Text = "" Then
            pnl_mensaje.Visible = True
            lbl_mensaje.Text = "Completar Campo Apellido Materno"
            pnl_mensaje.UpdateAfterCallBack = True
            lbl_mensaje.UpdateAfterCallBack = True
            Dim valor As String
            valor = "1"
            Session("valor") = valor
            Exit Sub
        End If

        If cmb_Sexo.SelectedValue = "" Then
            pnl_mensaje.Visible = True
            lbl_mensaje.Text = "Completar Campo Sexo"
            pnl_mensaje.UpdateAfterCallBack = True
            lbl_mensaje.UpdateAfterCallBack = True
            Dim valor As String
            valor = "1"
            Session("valor") = valor
            Exit Sub
        End If

        If txt_celular.Text = "" Then
            pnl_mensaje.Visible = True
            lbl_mensaje.Text = "Completar Campo Celular"
            pnl_mensaje.UpdateAfterCallBack = True
            lbl_mensaje.UpdateAfterCallBack = True
            Dim valor As String
            valor = "1"
            Session("valor") = valor
            Exit Sub
        End If

        If datepicker.Text = "" Or Not IsDate(datepicker.Text) Then
            pnl_mensaje.Visible = True
            lbl_mensaje.Text = "Completar Campo Fecha Nacimiento"
            pnl_mensaje.UpdateAfterCallBack = True
            lbl_mensaje.UpdateAfterCallBack = True
            Dim valor As String
            valor = "1"
            Session("valor") = valor
            Exit Sub
        End If

        If txt_email1.Text = "" Then
            pnl_mensaje.Visible = True
            lbl_mensaje.Text = "Completar Campo Mail"
            pnl_mensaje.UpdateAfterCallBack = True
            lbl_mensaje.UpdateAfterCallBack = True
            Dim valor As String
            valor = "1"
            Session("valor") = valor
            Exit Sub
        End If

        If txt_email12.Text = "" Then
            pnl_mensaje.Visible = True
            lbl_mensaje.Text = "Completar Campo Mail"
            pnl_mensaje.UpdateAfterCallBack = True
            lbl_mensaje.UpdateAfterCallBack = True
            Dim valor As String
            valor = "1"
            Session("valor") = valor
            Exit Sub
        End If

        If RTrim(LTrim(txt_email1.Text.ToUpper)) <> RTrim(LTrim(txt_email12.Text.ToUpper)) Then
            pnl_mensaje.Visible = True
            lbl_mensaje.Text = "Los E-Mail Ingresados Son Distintos"
            pnl_mensaje.UpdateAfterCallBack = True
            lbl_mensaje.UpdateAfterCallBack = True
            Dim valor As String
            valor = "1"
            Session("valor") = valor
            Exit Sub
        End If

        pnl_mensaje.Visible = False
        lbl_mensaje.Text = Nothing
        pnl_mensaje.UpdateAfterCallBack = True
        lbl_mensaje.UpdateAfterCallBack = True
        Session("valor") = Nothing

    End Sub

    Sub llena_combo()
        Dim exec As New DotNetDal.SQLPersistence(False, "cnn", DotNetDal.SQLPersistence.Provider.SQLCLIENT)
        Dim rp As New DotNetResponse.SQLPersistence
        rp.StoredProcedure = "SP_AME_GET_ISAPRE"
        exec.ExecuteDataTable(rp)
        If rp.TieneDatos Then
            cmb_isapre.DataTextField = "nombre"
            cmb_isapre.DataValueField = "codigo"
            cmb_isapre.DataSource = rp.DtTable
            cmb_isapre.UpdateAfterCallBack = True
            Me.cmb_isapre.DataBind()
        End If
        If rp.Errores Then
            'envío mensaje de error
        End If

        rp.ClearParametro()
        rp.TieneDatos = False

        'JQ 17042011 begin 
        'rp.StoredProcedure = "SP_AME_GET_COMUNA"
        'exec.ExecuteDataTable(rp)
        'If rp.TieneDatos Then
        '    cmb_comuna.DataTextField = "nombre"
        '    cmb_comuna.DataValueField = "codigo"
        '    cmb_comuna.DataSource = rp.DtTable
        '    cmb_comuna.UpdateAfterCallBack = True
        '    Me.cmb_comuna.DataBind()
        'End If
        'If rp.Errores Then
        '    'envío mensaje de error
        'End If
        'JQ 17042011 End

        rp.ClearParametro()
        rp.TieneDatos = False
        rp.StoredProcedure = "SP_AME_GET_REGION"
        exec.ExecuteDataTable(rp)
        If rp.TieneDatos Then
            cmb_region.DataTextField = "nombre"
            cmb_region.DataValueField = "codigo"
            cmb_region.DataSource = rp.DtTable
            cmb_region.UpdateAfterCallBack = True
            Me.cmb_region.DataBind()

            cmb_region_SelectedIndexChanged(Nothing,Nothing)'JQ 17042011
            cmb_comuna.SelectedIndex =0
        End If
        If rp.Errores Then
            'envío mensaje de error
        End If

    End Sub

    Protected Sub ImageButton1_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles ImageButton1.Click


        If txt_celular.Text.Trim.Length = 0 Then
            lbl_mensaje.Text = "Falta ingresar el número de celular de contacto "
            lbl_mensaje.UpdateAfterCallBack = True
            pnl_mensaje.Visible = True
            pnl_mensaje.UpdateAfterCallBack = True
            Exit Sub
        End If
        

        If txt_fonofijo.Text.Trim.Length = 0 Then
            lbl_mensaje.Text = "Falta ingresar el número de fono fijo"
            lbl_mensaje.UpdateAfterCallBack = True
            pnl_mensaje.Visible = True
            pnl_mensaje.UpdateAfterCallBack = True
            Exit Sub
        End If


        Dim exec As New DotNetDal.SQLPersistence(True, "cnn", DotNetDal.SQLPersistence.Provider.SQLCLIENT)
        Dim rp As New DotNetResponse.SQLPersistence
        Dim clave As Decimal = (10000000 - 99999999) * Rnd() + 99999999

        If Not IsNumeric(txt_rut.Text) Then
            lbl_mensaje.Text = "El Campo Rut Solo Debe Contener Números"
            pnl_mensaje.Visible = True
            lbl_mensaje.UpdateAfterCallBack = True
            pnl_mensaje.UpdateAfterCallBack = True
        End If

        If Session("rut_usuario") = Nothing Then
        Else
            If Session("rut_usuario").ToString.Substring(0, 1).ToString = "0" Then
                Session("rut_usuario") = Session("rut_usuario").ToString.Substring(1, 9)
            End If
        End If

        rp.StoredProcedure = "SP_AME_GET_PACIENTE_LOGIN"
        rp.AddParametro(txt_rut.Text & txt_dv.Text)

        exec.ExecuteDataTable(rp)

        If rp.TieneDatos Then
            rp.ClearParametro()
            rp.TieneDatos = False

            valida_mail_paciente()
            If Session("valor") = "1" Then
                Exit Sub
            End If
            mail()
            If Session("mail") = "2" Then
                Exit Sub
            End If
            If Session("update") = "update" Then
                rp.StoredProcedure = "SP_AME_GET_UPDATE_PACIENTE"
                rp.AddParametro(txt_rut.Text & txt_dv.Text)
                rp.AddParametro(txt_email1.Text)
                rp.AddParametro(txt_rut.Text)
                rp.AddParametro(txt_dv.Text)
                rp.AddParametro(clave)
                exec.ExecuteNonQuery(rp)
                exec.Commit()
                rp.TieneDatos = Nothing
                If rp.Errores Then
                    'error
                End If
                lbl_mensaje.Text = Nothing
                pnl_mensaje.Visible = False
                lbl_mensaje.UpdateAfterCallBack = True
                pnl_mensaje.UpdateAfterCallBack = True
            Else
                rp.ClearParametro()
                rp.TieneDatos = False
                rp.StoredProcedure = "SP_AME_GET_UPDATE_PACIENTE" '"SP_AME_INSERT_TBL_USUARIO"
                rp.AddParametro(txt_rut.Text & txt_dv.Text)
                rp.AddParametro(txt_email1.Text)
                rp.AddParametro(txt_rut.Text)
                rp.AddParametro(txt_dv.Text)
                rp.AddParametro(clave)
                exec.ExecuteNonQuery(rp)
                exec.Commit()
                If rp.Errores Then
                    'ERROR
                End If
            End If

        Else
            valida_datos()
            If Session("valor") = "1" Then
                Exit Sub
            End If

            mail()
            If Session("mail") = "2" Then
                Exit Sub
            End If

            rp.ClearParametro()
            rp.TieneDatos = False
            rp.StoredProcedure = "SP_AME_INSERT_USUARIO"
            If txt_rut.Text.Substring(0, 1) = "0" Then
                txt_rut.Text = txt_rut.Text.Substring(1, 7)
            End If
            rp.AddParametro(txt_rut.Text)
            rp.AddParametro(txt_dv.Text)
            rp.AddParametro(txt_nombres.Text)
            rp.AddParametro(txt_paterno.Text)
            rp.AddParametro(txt_materno.Text)
            rp.AddParametro(datepicker.Text)
            rp.AddParametro(txt_email1.Text)
            rp.AddParametro(clave)
            rp.AddParametro(txt_celular.Text)
            rp.AddParametro(cmb_Sexo.SelectedValue)
            rp.AddParametro(txt_rut.Text & txt_dv.Text)
            rp.AddParametro(cmb_isapre.SelectedValue)
            rp.AddParametro(cmb_comuna.SelectedValue)
            rp.AddParametro(txt_fonofijo.Text)

            exec.ExecuteNonQuery(rp)
            exec.Commit()

            If rp.Errores Then
                lbl_mensaje.Text = "Error En Los Datos Ingresados : " & rp.MensajeError
                lbl_mensaje.UpdateAfterCallBack = True
                pnl_mensaje.Visible = True
                pnl_mensaje.UpdateAfterCallBack = True
                Exit Sub

            Else
                SendMail(rp, clave, txt_email1.Text)


                If rp.Errores Then
                    'mostrar mensaje de error
                    pnl_mensaje.Visible = True
                    pnl_mensaje.UpdateAfterCallBack = True
                    Me.lbl_mensaje.Text = "Ocurrió un error al enviar sus datos"
                    Exit Sub
                End If
            End If

        End If
        Me.Button2.ImageUrl = "~/imagenes/boton volver.png"
        Me.Button2.UpdateAfterCallBack = True
        Me.ImageButton1.Visible = False
        Me.ImageButton1.UpdateAfterCallBack = True

        lbl_mensaje.Text = "Información Guardada Correctamente, la clave fue enviada a su email"
        lbl_mensaje.UpdateAfterCallBack = True
        pnl_mensaje.Visible = True
        pnl_mensaje.UpdateAfterCallBack = True
        ' Response.Redirect("Wfrm_Paso4.aspx", True)

    End Sub

    Protected Sub Button2_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button2.Click
        Session("paso_registro") = "paso_registro"
        Response.Redirect("Wfrm_Paso4.aspx", True)
    End Sub
    Sub valida_mail_paciente()
        txt_email1.BackColor = Drawing.Color.White
        txt_email12.BackColor = Drawing.Color.White
        txt_email1.UpdateAfterCallBack = True
        txt_email12.UpdateAfterCallBack = True

        If txt_email1.Text = "" Then
            pnl_mensaje.Visible = True
            lbl_mensaje.Text = "Completar Campo Mail"
            pnl_mensaje.UpdateAfterCallBack = True
            lbl_mensaje.UpdateAfterCallBack = True
            txt_email1.ReadOnly = False
            txt_email1.UpdateAfterCallBack = True
            txt_email12.ReadOnly = False
            txt_email12.UpdateAfterCallBack = True
            Anthem.Manager.AddScriptForClientSideEval("document.getElementById('" & txt_email1.ClientID & "').focus();")


            txt_email1.BackColor = Drawing.Color.YellowGreen
            txt_email12.BackColor = Drawing.Color.YellowGreen
            txt_email1.UpdateAfterCallBack = True
            txt_email12.UpdateAfterCallBack = True


            Dim valor As String
            valor = "1"
            Session("valor") = valor
            Session("update") = "update"
            Exit Sub
        End If

        If txt_email12.Text = "" Then
            pnl_mensaje.Visible = True
            lbl_mensaje.Text = "Completar Campo Mail"
            pnl_mensaje.UpdateAfterCallBack = True
            lbl_mensaje.UpdateAfterCallBack = True
            Dim valor As String
            valor = "1"
            Session("valor") = valor
            Session("update") = "update"
            txt_email1.ReadOnly = False
            txt_email1.UpdateAfterCallBack = True
            txt_email1.BackColor = Drawing.Color.YellowGreen

            txt_email12.ReadOnly = False
            txt_email12.BackColor = Drawing.Color.YellowGreen
            txt_email12.UpdateAfterCallBack = True
            Anthem.Manager.AddScriptForClientSideEval("document.getElementById('" & txt_email1.ClientID & "').focus();")

            Exit Sub
        End If

        If RTrim(LTrim(txt_email1.Text.ToUpper)) <> RTrim(LTrim(txt_email12.Text.ToUpper)) Then
            pnl_mensaje.Visible = True
            lbl_mensaje.Text = "Los E-Mail Ingresados Son Distintos"
            pnl_mensaje.UpdateAfterCallBack = True
            lbl_mensaje.UpdateAfterCallBack = True
            Dim valor As String
            valor = "1"
            Session("valor") = valor
            Session("update") = "update"
            txt_email1.ReadOnly = False
            txt_email1.UpdateAfterCallBack = True
            txt_email12.ReadOnly = False
            txt_email12.UpdateAfterCallBack = True
            txt_email1.BackColor = Drawing.Color.YellowGreen
            txt_email12.BackColor = Drawing.Color.YellowGreen
            Anthem.Manager.AddScriptForClientSideEval("document.getElementById('" & txt_email12.ClientID & "').focus();")


            Exit Sub
        End If
        Session("valor") = Nothing
    End Sub

    Protected Sub cmb_region_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles cmb_region.SelectedIndexChanged
        Dim exec As New DotNetDal.SQLPersistence(True, "cnn", DotNetDal.SQLPersistence.Provider.SQLCLIENT)
        Dim rp As New DotNetResponse.SQLPersistence

        rp.ClearParametro()
        rp.TieneDatos = False
        rp.StoredProcedure = "SP_AME_GET_COMUNA_region"
        rp.AddParametro(cmb_region.SelectedValue)
        exec.ExecuteDataTable(rp)
        If rp.TieneDatos Then
            cmb_comuna.DataTextField = "nombre"
            cmb_comuna.DataValueField = "codigo"
            cmb_comuna.DataSource = rp.DtTable
            cmb_comuna.UpdateAfterCallBack = True
            Me.cmb_comuna.DataBind()
        End If
        If rp.Errores Then
            'envío mensaje de error
        End If

    End Sub

    Sub region()
        Dim exec As New DotNetDal.SQLPersistence(True, "cnn", DotNetDal.SQLPersistence.Provider.SQLCLIENT)
        Dim rp As New DotNetResponse.SQLPersistence

        rp.ClearParametro()
        rp.TieneDatos = False
        rp.StoredProcedure = "SP_AME_GET_COMUNA_region"
        rp.AddParametro("13")
        exec.ExecuteDataTable(rp)
        If rp.TieneDatos Then
            cmb_comuna.DataTextField = "nombre"
            cmb_comuna.DataValueField = "codigo"
            cmb_comuna.DataSource = rp.DtTable
            cmb_comuna.UpdateAfterCallBack = True
            Me.cmb_comuna.DataBind()
        End If
        If rp.Errores Then
            'envío mensaje de error
        End If

    End Sub

    
End Class